package com.quanyan.orderpay.response.mq;

import com.quanyan.BaseResponse;
import com.quanyan.orderpay.request.ReqPayInfo;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author songzj
 * @date 16/6/14-16:10
 */
public class OrderNotifyMsg extends BaseResponse {


    private static final long serialVersionUID = 5600048716834923274L;


    public static final String RESULT_CODE_USER_PAY_SUCCESS = "USER_PAY_SUCCESS";
    public static final String RESULT_CODE_USER_PAY_FAIL = "USER_PAY_FAIL";

    public static final String RESULT_CODE_ORDER_CLOSE_SUCCESS = "ORDER_CLOSE_SUCCESS";

    public static final String RESULT_CODE_USER_REFUND_SUCCESS = "USER_REFUND_SUCCESS";
    public static final String RESULT_CODE_USER_REFUND_FAIL = "USER_REFUND_FAIL";

    private String sourceSystemCode;

    private String sourceBusinessCode;

    private String orderNo; //系统订单号.

    private String outTradeNo; //业务系统订单号.

    private Integer uid; //下单用户.

    private BigDecimal orderAmount; //订单金额单位元.



    @Deprecated
    private BigDecimal payAmount; //实际支付金额 = 订单金额-虚拟货币

    @Deprecated
    private BigDecimal refundAmount; //用户累计退款金额

    private String resultCode; //支付成功/失败/  退款成功/失败.

    private String extraParam; //提交订单时的extraParam,原样返回.

    private Long payTime; //用户支付时间.

    private List<ReqPayInfo> payInfoList;

    public String getBuyerBank() {
        return buyerBank;
    }

    public void setBuyerBank(String buyerBank) {
        this.buyerBank = buyerBank;
    }

    private String buyerBank; //购买者使用银行

    public Long getPayTime() {
        return payTime;
    }

    public void setPayTime(Long payTime) {
        this.payTime = payTime;
    }

    public String getSourceSystemCode() {
        return sourceSystemCode;
    }

    public void setSourceSystemCode(String sourceSystemCode) {
        this.sourceSystemCode = sourceSystemCode;
    }

    public String getSourceBusinessCode() {
        return sourceBusinessCode;
    }

    public void setSourceBusinessCode(String sourceBusinessCode) {
        this.sourceBusinessCode = sourceBusinessCode;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getOutTradeNo() {
        return outTradeNo;
    }

    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }

    public Integer getUid() {
        return uid;
    }

    public void setUid(Integer uid) {
        this.uid = uid;
    }

    public BigDecimal getOrderAmount() {
        return orderAmount;
    }

    public void setOrderAmount(BigDecimal orderAmount) {
        this.orderAmount = orderAmount;
    }

    @Deprecated
    public BigDecimal getPayAmount() {
        return payAmount;
    }

    @Deprecated
    public void setPayAmount(BigDecimal payAmount) {
        this.payAmount = payAmount;
    }

    @Deprecated
    public BigDecimal getRefundAmount() {
        return refundAmount;
    }

    @Deprecated
    public void setRefundAmount(BigDecimal refundAmount) {
        this.refundAmount = refundAmount;
    }

    public String getResultCode() {
        return resultCode;
    }

    public void setResultCode(String resultCode) {
        this.resultCode = resultCode;
    }

    public String getExtraParam() {
        return extraParam;
    }

    public void setExtraParam(String extraParam) {
        this.extraParam = extraParam;
    }


    public List<ReqPayInfo> getPayInfoList() {
        return payInfoList;
    }

    public void setPayInfoList(List<ReqPayInfo> payInfoList) {
        this.payInfoList = payInfoList;
    }

    @Override
    public String toString() {
        return "OrderNotifyMsg{" +
                "sourceSystemCode='" + sourceSystemCode + '\'' +
                ", sourceBusinessCode='" + sourceBusinessCode + '\'' +
                ", orderNo='" + orderNo + '\'' +
                ", outTradeNo='" + outTradeNo + '\'' +
                ", uid=" + uid +
                ", orderAmount=" + orderAmount +
                ", payAmount=" + payAmount +
                ", refundAmount=" + refundAmount +
                ", resultCode='" + resultCode + '\'' +
                ", extraParam='" + extraParam + '\'' +
                ", payTime=" + payTime +
                ", payInfoList=" + payInfoList +
                ", buyerBank='" + buyerBank + '\'' +
                "} " + super.toString();
    }
}
